package de.justphil.tcg.tcgserver.game.mechanics.event;

/**
 * 
 * @author Martin
 * 
 */
public interface EventObservable {

	/**
	 * Adds a listener to the observable to listen for Events of a certain type.
	 * 
	 * @param onEventListener
	 *            the listener
	 * @param eventType
	 *            the Event type to listen for
	 */
	void addOnEventListener(int eventType, OnEventListener onEventListener);

	
	/**
	 * Removes listener from the observable for certain type.
	 * 
	 * @param onEventListener
	 *            the listener
	 * @param eventType
	 *            the Event type the listener was registered for
	 * 
	 * @return true if the listener could be removed, false otherwise.
	 */
	boolean removeOnEventListener(int eventType, OnEventListener onEventListener);

}
